package com.yidu.ladder.system.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.yidu.ladder.system.domain.Org;
import com.yidu.ladder.system.domain.User;
import com.yidu.ladder.system.domain.UserVo;



public interface UserDao {
	/**
	 * 
	 * @Title: pageQueryUser
	 * @Description: 分页查询用户信息
	 * @param userVo 用户包装类
	 * @return 分页后的用户信息
	 * @author ChenLin
	 * @date 2019-12-04 09:56:13
	 */
	public List<User> pageQueryUser(UserVo userVo);
	
	/**
	 * 
	 * @Title: countUserByCriteria
	 * @Description: 统计检索后的用户
	 * @param userVo 用户包装类
	 * @return 返回统计后的用户数量
	 * @author ChenLin
	 * @date 2019-12-04 09:37:09
	 */
	public int countUserByCriteria(UserVo userVo);
	
	/**
	 * 
	 * @Title: updateUserByUseable
	 * @Description: 根据用户Id修改用户状态
	 * @param paraMap 封装的Id和状态信息
	 * @return 修改后的用户数
	 * @author ChenLin
	 * @date 2019-12-04 09:47:04
	 */
	 public int updateUserUseableById(Map<String, Object> paraMap);
	  
	 /**
	  * 
	  * @Title: addUser
	  * @Description: 添加用户
	  * @param user 用户实体
	  * @return 1为成功添加，0为添加失败
	  * @author ChenLin
	  * @date 2019-12-04 10:01:18
	  */
	  public int addUser(User user);
	  
	  /**
	   * 
	   * @Title: updateUserById
	   * @Description: 根据ID修改用户信息
	   * @param user 用户实体类
	   * @return 1为修改成功，0为修改失败
	   * @author ChenLin
	   * @date 2019-12-04 10:04:20
	   */
	  public int updateUserById(User user);
	  
	  /**
	   * 
	   * @Title: findAllUser
	   * @Description: 查询所有用户信息
	   * @return 查询后的用户信息
	   * @author ChenLin
	   * @date 2019-12-04 10:04:50
	   */
	  List<User> findAllUser();
	  
	  
	  User findUserById(String userId);
	  
	  
	  /**
	   * 
	   * @Title: queryAllOrg
	   * @Description: 查询所有组织表
	   * @return
	   * @author ChenLin
	   * @date 2019-12-04 09:23:47
	   */
	  List<Org> queryAllOrg();
	  
	  /**
	   * 
	   * @Title: judgmentUserPhone
	   * @Description: 判断手机号是否存在
	   * @param userPhone 手机号
	   * @return 查询到的用户信息
	   * @author ChenLin
	   * @date 2019-12-06 02:07:13
	   */
	  User  toVerifyUserPhone(String userPhone);
	  
	  
	  /**
	   * 
	   * @Title: updatePassword
	   * @Description: 修改密码
	   * @param userId 用户ID
	   * @param password 密码
	   * @return 修改成功影响的行数
	   * @author ChenLin
	   * @date 2019-12-13 02:14:37
	   */
	  int updatePassword(@Param("userId")String userId,@Param("password")String password);
	  
	  
	
}
